package com.opal.modules.costReportForm.mapper.oracle;

import com.opal.model.DataGridData;
import com.opal.system.entity.table.OrgDeptExtend;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

public interface QueryManagerMapper {

    /**
     *  根据组织和部门代码找业务经理
     * @param pkOrg 组织
     * @param pkDept 部门代码
     * @return
     */
    @Select("select code,name from bd_psndoc where pk_psndoc in (select principal" +
            "                       from org_dept_v" +
            "                      where pk_org = #{pkOrg}" +
            "                        and dr = 0" +
            "                        and pk_dept = #{pkDept})")
    public List<Map<String,String>> selectOracelBusinessManager(@Param("pkOrg") String pkOrg, @Param("pkDept") String pkDept);

    /**
     *   根据组织找部门经理\总经理\总裁
     * @param pkOrg   组织
     * @param postcode  职位
     * @return
     */
    public List<Map<String,String>> selectOracelManager(@Param("pkOrg") String pkOrg, @Param("postcode") String postcode);

    /**
     *   找成本报告 C 其他配件费用
     * @param name   模糊配件名称
     * @return
     */
    public List<Map<String,String>> selectSystemMountings(@Param("name") String name, @Param("dg") DataGridData<String> dg);

    /**
     *   找成本报告 C 其他配件费用 (统计)
     * @param name   模糊配件名称
     * @return
     */
    public int countSystemMountings(@Param("name") String name);

    /**
     *   找币种，由于刷新不及时，可选择上月份的，，
     * @param currentMonth      '2020-04-28' 到28把，防止2月份
     * @param upMonth      '2020-03-01'，1号开始
     * @return
     */
    public List<Map<String,String>> getCurrency(@Param("upMonth") String upMonth, @Param("currentMonth") String currentMonth, @Param("code") String code);

    /**
     *  获取编码相关属性：品名、规格、等
     * @param costCoding
     */
    List<Map<String,String>> selectCostCodingProperty(String costCoding);

    /**
     *
     * @param pkMaterial bd_material的主键id
     * @param pkOrg     组织
     * @param currentDate 当前日期
     * @return
     */
    List<Map<String,String>> selectCostCodingParts(@Param("pkMaterial") String pkMaterial, @Param("pkOrg") String pkOrg, @Param("currentDate") String currentDate);

    /**
     * 获取相对应的成本报告需要的组织
     * @param pkOrg
     * @return
     */
    List<OrgDeptExtend> getCostPkOrg(@Param("pkOrg") String pkOrg);
}
